home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / PWAACH30.ZIP / AMI-CHAT.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-04-09  |  5KB  |  331 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Boolean  BOOLEAN006
  25.     Integer  TINTEGER001(77)
  26.     Integer  INTEGER002
  27.     Integer  INTEGER003
  28.     Integer  INTEGER004
  29.     Integer  INTEGER005
  30.     Integer  INTEGER006
  31.     Integer  INTEGER007
  32.     Integer  INTEGER008
  33.     String   STRING001
  34.     String   STRING002
  35.     String   STRING003
  36.     String   STRING004
  37.     String   STRING005
  38.     String   STRING006
  39.     String   STRING007
  40.     String   STRING008
  41.     String   STRING009
  42.     String   STRING010
  43.  
  44. ;------------------------------------------------------------------------------
  45.  
  46.     SaveScrn
  47.     PageOff
  48.     Sound 0
  49.     StartDisp 1
  50.     FreshLine
  51.     If (Exist(PPEPath() + PPEName() + ".CNF")) Goto LABEL001
  52.     STRING009 = "@" + "X" + "0" + "2"
  53.     STRING010 = "@" + "X" + "0" + "5"
  54.     INTEGER005 = 1
  55.     STRING006 = "Y" + "E" + "S"
  56.     STRING007 = "Y" + "E" + "S"
  57.     Goto LABEL002
  58.     :LABEL001
  59.     FOpen 1, PPEPath() + PPEName() + ".CNF", 0, 0
  60.     FGet 1, STRING009
  61.     FGet 1, STRING010
  62.     FGet 1, INTEGER005
  63.     FGet 1, STRING006
  64.     FGet 1, STRING007
  65.     FClose 1
  66.     :LABEL002
  67.     DispFile PPEPath() + PPEName() + "." + String(Random(INTEGER005 - 1) + 1), 0
  68.     INTEGER002 = Time()
  69.     If (Lower(Left(STRING007, 1)) == "y") Then
  70.         FAppend 2, PPEPath() + "CHATLOG." + String(PcbNode()), 1, 0
  71.         FPutLn 2, "Chat initiated with " + Upper(U_Name()) + " on " + String(Date()) + " at " + String(Time())
  72.         FPutLn 2, ""
  73.         INTEGER007 = 77
  74.         BOOLEAN006 = 1
  75.     Else
  76.         INTEGER007 = 79
  77.         Redim TINTEGER001, INTEGER007
  78.     Endif
  79.     :LABEL003
  80.     STRING002 = KInkey()
  81.     STRING003 = MInkey()
  82.     If ((STRING002 <> "") && !BOOLEAN004) Then
  83.         BOOLEAN003 = 1
  84.         STRING008 = "S>"
  85.         Gosub LABEL004
  86.     Else
  87.         STRING002 = ""
  88.     Endif
  89.     If ((STRING003 <> "") && !BOOLEAN003) Then
  90.         BOOLEAN004 = 1
  91.         STRING008 = "U>"
  92.         Gosub LABEL006
  93.     Else
  94.         STRING003 = ""
  95.     Endif
  96.     Goto LABEL003
  97.     :LABEL004
  98.     If (STRING002 <> Chr(27)) Then
  99.         If (InStr(Mask_Ascii(), STRING002) <> 0) Then
  100.             Print STRING009, STRING002
  101.             STRING001 = STRING001 + STRING002
  102.         Endif
  103.         If ((STRING002 == Chr(8)) && (Len(STRING001) > 0)) Then
  104.             Backup 1
  105.             Print " "
  106.             Backup 1
  107.             STRING001 = Left(STRING001, Len(STRING001) - 1)
  108.         Endif
  109.         If (STRING002 == Chr(13)) Then
  110.             If (BOOLEAN006 && !(STRING001 == "")) Then
  111.                 FPutLn 2, STRING008 + ReplaceStr(STRING001, "@", "%")
  112.                 BOOLEAN001 = 0
  113.             Endif
  114.             If ((BOOLEAN006 && (STRING001 == "")) && !BOOLEAN001) Then
  115.                 FPutLn 2, ""
  116.                 BOOLEAN001 = 1
  117.             Endif
  118.             Newline
  119.             INTEGER006 = 0
  120.             BOOLEAN005 = 0
  121.             STRING001 = ""
  122.             BOOLEAN003 = 0
  123.         Endif
  124.         If (Len(STRING001) == INTEGER007) Then
  125.             For INTEGER008 = INTEGER007 To 1 Step -1
  126.                 TINTEGER001(INTEGER008) = Asc(Mid(STRING001, INTEGER008, 1))
  127.                 If (TINTEGER001(INTEGER008) == 32) Then
  128.                     INTEGER006 = INTEGER008
  129.                     If (!BOOLEAN005) BOOLEAN005 = 1
  130.                     Break
  131.                 Endif
  132.             Next
  133.             If (BOOLEAN005) Then
  134.                 STRING004 = Mid(STRING001, INTEGER006 + 1, INTEGER007 - INTEGER006)
  135.                 STRING005 = Mid(STRING001, 1, INTEGER006 - 1)
  136.                 If (BOOLEAN006) FPutLn 2, STRING008 + ReplaceStr(STRING005, "@", "%")
  137.                 Backup INTEGER007 - INTEGER006
  138.                 ClrEol
  139.                 Newline
  140.                 STRING001 = STRING004
  141.                 For INTEGER008 = 1 To Len(STRING001) Step 3
  142.                     Print Trim(Mid(STRING001, INTEGER008, 3), " ")
  143.                 Next
  144.                 INTEGER006 = 0
  145.                 BOOLEAN005 = 0
  146.                 Goto LABEL005
  147.             Endif
  148.             If (BOOLEAN006) FPutLn 2, STRING008 + ReplaceStr(STRING001, "@", "%")
  149.             Newline
  150.             INTEGER006 = 0
  151.             BOOLEAN005 = 0
  152.             STRING001 = ""
  153.         Endif
  154.         :LABEL005
  155.     Else
  156.         Goto LABEL008
  157.     Endif
  158.     Return
  159.     :LABEL006
  160.     If (InStr(Mask_Ascii(), STRING003) <> 0) Then
  161.         Print STRING010, STRING003
  162.         STRING001 = STRING001 + STRING003
  163.     Endif
  164.     If ((STRING003 == Chr(8)) && (Len(STRING001) > 0)) Then
  165.         Backup 1
  166.         Print " "
  167.         Backup 1
  168.         STRING001 = Left(STRING001, Len(STRING001) - 1)
  169.     Endif
  170.     If (STRING003 == Chr(13)) Then
  171.         If (BOOLEAN006 && !(STRING001 == "")) Then
  172.             FPutLn 2, STRING008 + ReplaceStr(STRING001, "@", "%")
  173.             BOOLEAN002 = 0
  174.         Endif
  175.         If ((BOOLEAN006 && (STRING001 == "")) && !BOOLEAN002) Then
  176.             FPutLn 2, ""
  177.             BOOLEAN002 = 1
  178.         Endif
  179.         Newline
  180.         INTEGER006 = 0
  181.         BOOLEAN005 = 0
  182.         STRING001 = ""
  183.         BOOLEAN004 = 0
  184.     Endif
  185.     If (Len(STRING001) == INTEGER007) Then
  186.         For INTEGER008 = INTEGER007 To 1 Step -1
  187.             TINTEGER001(INTEGER008) = Asc(Mid(STRING001, INTEGER008, 1))
  188.             If (TINTEGER001(INTEGER008) == 32) Then
  189.                 INTEGER006 = INTEGER008
  190.                 If (!BOOLEAN005) BOOLEAN005 = 1
  191.                 Break
  192.             Endif
  193.         Next
  194.         If (BOOLEAN005) Then
  195.             STRING004 = Mid(STRING001, INTEGER006 + 1, INTEGER007 - INTEGER006)
  196.             STRING005 = Mid(STRING001, 1, INTEGER006 - 1)
  197.             If (BOOLEAN006) FPutLn 2, STRING008 + ReplaceStr(STRING005, "@", "%")
  198.             Backup INTEGER007 - INTEGER006
  199.             ClrEol
  200.             Newline
  201.             STRING001 = STRING004
  202.             For INTEGER008 = 1 To Len(STRING001) Step 3
  203.                 Print Trim(Mid(STRING001, INTEGER008, 3), " ")
  204.             Next
  205.             INTEGER006 = 0
  206.             BOOLEAN005 = 0
  207.             Goto LABEL007
  208.         Endif
  209.         If (BOOLEAN006) FPutLn 2, STRING008 + ReplaceStr(STRING001, "@", "%")
  210.         Newline
  211.         INTEGER006 = 0
  212.         BOOLEAN005 = 0
  213.         STRING001 = ""
  214.     Endif
  215.     :LABEL007
  216.     Return
  217.     :LABEL008
  218.     If (!(STRING001 == "") && BOOLEAN006) Then
  219.         FPutLn 2, STRING008 + ReplaceStr(STRING001, "@", "%")
  220.         Goto LABEL009
  221.     Endif
  222.     :LABEL009
  223.     If (BOOLEAN006) Then
  224.         FPutLn 2, ""
  225.         FPutLn 2, "Chat ended with " + Upper(U_Name()) + " on " + String(Date()) + " at " + String(Time())
  226.         FPutLn 2, "──────────────────────────────────────────────────────────────────────────────"
  227.         FClose 2
  228.     Endif
  229.     RestScrn
  230.     INTEGER003 = Time()
  231.     If (Lower(Left(STRING006, 1)) == "y") Then
  232.         INTEGER004 = (INTEGER003 - INTEGER002) / 60
  233.         If (INTEGER004 < 0) INTEGER004 = INTEGER004 + 86400
  234.         AdjTime INTEGER004
  235.     Endif
  236.     KbdStuff Chr(27)
  237.     End
  238.  
  239. ;------------------------------------------------------------------------------
  240. ;
  241. ; Usage report (before postprocessing)
  242. ;
  243. ; ■ Statements used :
  244. ;
  245. ;    1       End
  246. ;    2       ClrEol
  247. ;    44      Goto 
  248. ;    66      Let 
  249. ;    6       Print 
  250. ;    35      If 
  251. ;    1       DispFile 
  252. ;    1       FOpen 
  253. ;    1       FAppend 
  254. ;    2       FClose 
  255. ;    5       FGet 
  256. ;    14      FPutLn 
  257. ;    1       StartDisp 
  258. ;    1       AdjTime 
  259. ;    2       Gosub 
  260. ;    2       Return
  261. ;    6       Newline
  262. ;    1       KbdStuff 
  263. ;    6       Backup 
  264. ;    1       FreshLine
  265. ;    1       SaveScrn
  266. ;    1       RestScrn
  267. ;    1       Sound 
  268. ;    1       PageOff
  269. ;    1       Redim 
  270. ;
  271. ;
  272. ; ■ Functions used :
  273. ;
  274. ;    6       -
  275. ;    1       /
  276. ;    46      +
  277. ;    10      -
  278. ;    15      ==
  279. ;    5       <>
  280. ;    5       <
  281. ;    4       <=
  282. ;    2       >
  283. ;    8       >=
  284. ;    37      !
  285. ;    19      &&
  286. ;    4       ||
  287. ;    10      Len(
  288. ;    2       Lower()
  289. ;    2       Upper()
  290. ;    8       Mid()
  291. ;    4       Left()
  292. ;    6       Chr()
  293. ;    2       Asc()
  294. ;    2       InStr()
  295. ;    2       Trim()
  296. ;    1       Random()
  297. ;    2       Date()
  298. ;    4       Time()
  299. ;    2       U_Name()
  300. ;    6       String()
  301. ;    2       Mask_Ascii()
  302. ;    4       PPEPath()
  303. ;    1       PcbNode()
  304. ;    1       Exist()
  305. ;    3       PPEName()
  306. ;    1       KInkey()
  307. ;    1       MInkey()
  308. ;    7       ReplaceStr()
  309. ;
  310. ;------------------------------------------------------------------------------
  311. ;
  312. ; Analysis flags : A
  313. ;
  314. ; A - Adjust online time remaining ■ 5
  315. ;     Program modify the amount of online time remaining, this may
  316. ;     be a way to bypass time limits
  317. ;     ■ Search for : ADJTIME
  318. ;
  319. ;------------------------------------------------------------------------------
  320. ;
  321. ; Postprocessing report
  322. ;
  323. ;    4       For/Next
  324. ;    0       While/EndWhile
  325. ;    23      If/Then or If/Then/Else
  326. ;    0       Select Case
  327. ;
  328. ;------------------------------------------------------------------------------
  329. ;                 AEGiS Corp - Break the routines, code against the machines!
  330. ;------------------------------------------------------------------------------
  331.